package com.yzh.luckydraw.application.process.draw;

import com.yzh.luckydraw.application.process.draw.req.DrawProcessReq;
import com.yzh.luckydraw.application.process.draw.res.DrawProcessResult;
import com.yzh.luckydraw.application.process.draw.res.RuleQuantificationCrowdResult;
import com.yzh.luckydraw.domain.rule.model.req.DecisionMatterReq;

/**
 * 活动抽奖流程编排
 */
public interface IActivityProcess {
    /**
     * 执行抽奖流程
     * @param req   抽奖请求
     * @return      抽奖结果
     */
    DrawProcessResult doDrawProcess(DrawProcessReq req);

    /**
     * 执行规则量化流程
     * @param req
     * @return
     */
    RuleQuantificationCrowdResult doRuleQuantificationCrowd(DecisionMatterReq req);
}
